package org.xq.softcup.mq.remoting.invoker.annotation;

import org.xq.softcup.mq.remoting.invoker.call.CallType;
import org.xq.softcup.mq.remoting.invoker.router.LoadBalance;
import org.xq.softcup.mq.remoting.net.NetEnum;
import org.xq.softcup.mq.serialize.Serializer;

import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({java.lang.annotation.ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface XQRpcReference {

    NetEnum netType() default NetEnum.NETTY;

    Serializer.SerializeEnum serializer() default Serializer.SerializeEnum.HESSIAN;

    CallType callType() default CallType.SYNC;

    LoadBalance loadBalance() default LoadBalance.ROUND;

    String version() default "";

    long timeout() default 1000L;

    String address() default "";

    String accessToken() default "";
}

